<?php
class ADeposito {

	public function __construct() {
	}
	public function actualizarCuentas(EFacade & $facade)
	{
		$ezpdo_=getManager();
		$session=$facade->session;
		$docD = & $facade->getDocumentRoot();
		$cuentaDesde =$docD->cuentaCaja;
		$cuentaHacia =$docD->cuentaBancaria;
		$monto=$docD->monto;
		$saldoViejoDesde =$cuentaDesde->getSaldo();
		$saldoNuevoDesde =$saldoViejoDesde - $monto;
		$cuentaDesde->saldo =$saldoNuevoDesde;
		$cuentaDesde->cuentaContable->disminuye($monto,$docD);
		$cuentaDesde->cuentaContable->commit();		
		$cuentaDesde->commit();
		$saldoViejoHacia =$cuentaHacia->getSaldo();
		$saldoNuevoHacia =$saldoViejoHacia + $monto;
		$cuentaHacia->saldo =$saldoNuevoHacia;
		$cuentaHacia->cuentaContable->aumenta($monto,$docD);
		$cuentaHacia->cuentaContable->commit();
		$cuentaHacia->commit();
		$transaccionDesde=$session->create('MTransaccion');
		$fechaTransaccion =time();
		$montoTransaccion =$monto;
		$transaccionDesde->esCaja =TRUE;
		$transaccionDesde->fechaTransaccion =$fechaTransaccion;
		$transaccionDesde->montoTransaccion =$montoTransaccion;
		$transaccionDesde->debe=$montoTransaccion;
		$docD->commit();
		$docD->numero = $docD->getDocumentNumber();
		$docD->diferenciador = $docD->getDocumentDifer();
		$docD->commit();		
		$transaccionDesde->descripcion = $docD->numero." - d&eacute;bito por Deposito desde ".$docD->cuentaCaja->nombre." hacia ".$docD->cuentaBancaria->nombre;
		$transaccionDesde->cuentaCaja =$cuentaDesde;
		$transaccionDesde->documento =$docD;
		$transaccionDesde->saldoCuenta = $saldoNuevoDesde;
		$transaccionDesde->commit();
		$transaccionHacia=$session->create('MTransaccion');
		$transaccionHacia->esBanco =TRUE;
		$transaccionHacia->fechaTransaccion =$fechaTransaccion;
		$transaccionHacia->montoTransaccion =$montoTransaccion;
		$transaccionHacia->haber =$montoTransaccion;
		$transaccionHacia->descripcion = $docD->numero." - credito por Deposito desde ".$docD->cuentaCaja->nombre." hacia ".$docD->cuentaBancaria->nombre;
		$transaccionHacia->cuentaBanco =$cuentaHacia;
		$transaccionHacia->documento =$docD;
		$transaccionHacia->saldoCuenta = $saldoNuevoHacia;
		$transaccionHacia->commit();
		$workflowMC = & $docD->getWorkflowRef();
		$facade->session->refresh($workflowMC);
		$transSetMC = & EFacade :: getCurrentTransSetAuto($workflowMC, /*AGENT */	2);
		$transMC = & $transSetMC->getTransByName('t2');
		$user=NULL;
		$facade->fireTrans($transMC, $user, 'Actualizar cuentas', FALSE);

		$workflowMC->epSetDirty(TRUE); 
		$docD->epSetDirty(TRUE); 
		$facade->saveWorkflow();		 	
	}
}
?>